package logica;
import logica.persistencia.*;
public class Proyecto implements IPersistible{
	
	private String nombre;
	
	private DiagramaPrincipal diagramaPpal;
	private Diagrama diagramaActual;
	
	/*
	 * le paso el diagrama principal del proyecto por parámetro
	 */
	public Proyecto(String nombre, DiagramaPrincipal diagramaPpal) throws SinNombreException
	{
		this.setNombre(nombre);
		this.setDiagramaPpal(diagramaPpal);
		this.setDiagramaActual(this.getDiagramaPpal());
	}
	
	/*
	 * el diagrama ppal está vacío, sería para proyectos nuevos.
	 */
	public Proyecto(String nombre) throws SinNombreException
	{
		this.setNombre(nombre);
		this.setDiagramaPpal(new DiagramaPrincipal(ConstantesTipo.DIAGRAMA_PRINCIPAL));
		this.setDiagramaActual(this.getDiagramaPpal());
	}
	
	public DiagramaSecundario crearDiagramaHijo(String nombre) throws SinNombreException {
		return this.getDiagramaActual().crearDiagramaHijo(nombre);
	}
	
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) throws SinNombreException 
	{
		if (nombre.isEmpty() || nombre == null)
			throw new SinNombreException("El proyecto debe tener un nombre.");
		
		this.nombre = nombre;
	}

	public DiagramaPrincipal getDiagramaPpal() {
		return diagramaPpal;
	}

	public void setDiagramaPpal(DiagramaPrincipal diagramaPpal) {
		this.diagramaPpal = diagramaPpal;
	}

	public ProyectoPersistente getProyectoPersistente() {
		return new ProyectoPersistente(this);
	}

	public Diagrama getDiagramaActual() {
		return diagramaActual;
	}

	public void setDiagramaActual(Diagrama diagramaActual) {
		this.diagramaActual = diagramaActual;
	}

}
